In real-time systems and, in particular, telecommunication switching systems, a need often arises to modify the operations and services provided by the telecommunication system to a customer. The ability to modify system functions for a given customer is often referred to in telecommunication switching technology as customizing the features or services of the system, and the ability of a customer to make such changes is referred to as customer programmability. The definition of a customer with respect to telecommunication systems includes the residential or business user of such a system and a telecommunication company providing the service, such as a Regional Bell Operating Company, e.g., Ameritech, Inc. or a governmental agency such as the British Post Office. Each of these two types of customers has different requirements with respect to customer programmability.
The problems facing the telecommunication provider in customizing services and features for a telecommunication system stem from two factors which relate to the programming language used by the manufacturer to write the programs that control this system and the software development environment. The first factor relates to the fact that present day telecommunication systems are controlled by a computer executing a program which is normally written in a high-level procedural language, such as C or Pascal, although many systems are still written in assembly language. The problem of the telecommunication systems program being written in a procedural language such as C or Pascal is that the order of execution of actions defined by the program in response to different signals from the telecommunication system is only implicit from the sequence of instructions, and the program response is not directly based on the state of the telecommunication system and the system's signals at any point in time. Because of this problem, only an expert in the program structure of the telecommunication system can make changes or add new services to the telecommunication system because it is necessary to know where in the sequence of the program instructions the changes must be made to modify existing services and to add new services.
The second factor is that the telecommunication control programs are normally developed on a computer system different than the one utilized to control the telecommunication systems. These development systems are not an integral part of the telecommunication system and cannot readily transfer developed programs to the telecommunication system. In addition, these development systems are special purpose and require skilled administration personnel. One such development system is described in the article entitled, "Software Development Tools," AT&T Technical Journal, Vol. 64, No. 1, January, 1985, pp. 287-304, by T. J. Pedersen, J. E. Ritacco, and J. A. Santillo.
An example of an existing telecommunication system where the manufacturer has attempted to provide not only the language, but also the development system required to make modifications to an existing telecommunication system, is described in the article entitled, "Exchange Software Development at Jutland Telephone," Fifth International Conference on Software Engineering for Telecommunication Switching Systems. Conf. Pub. No. 223, July 4-8, 1983, by S. W. Nielsen. This article describes Jutland Telephone of Denmark's experience with doing customer software development on a manufacturer's development system and the subsequent installation of those programs by the manufacturer's personnel. While this approach, indeed, did allow Jutland Telephone to develop programs, it required that Jutland Telephone develop an in-depth knowledge of not only the programs running the telecommunication system, but also a large amount of knowledge about the development system.
While the above approach is possible, it is not desirable because a telecommunication provider would prefer, for economic reasons, to be able to use a variety of systems from different manufacturers and not become locked in to one particular manufacturer's system because of the high cost of providing custom features.
One approach that allows an operating company or a telecommunication ministry to at least specify to the manufacturer what the services should be for a telecommunication system is the Specification and Description Language, SDL, which is currently being defined by a CCITT committee. The SDL language is described in the article, "SDL-CCITT Specification and Description Language," IEEE Transactions on Communications," Vol. Com-30, No. 6, June, 1982, by A. Rockstrom and R. Saracco, and the CCITT specifications are set forth in Recommendations Z101-104, CCITT Yellow Book, International Telecommunication Union, Geneva, Switzerland, 1981. The SDL language allows the telecommunication provider to describe the services and features that a telecommunication system is to provide in terms of state and telecommunication signal information. Once the telecommunication provider uses SDL for the formal description, manufacturers are free to implement that description in the language of their choice, such as CHILL or C. While the SDL approach does allow the telecommunication provider to control and specify the software development, it nevertheless still leaves the telecommunication provider dependent on the manufacturer for implementation of services and does not give the telecommunication provider the flexibility to make changes at its discretion.
One solution to the problem of providing different types of services to the end user of the telecommunication system has been for the manufacturer to program the telecommunication system to provide a large number of services and then to give the telecommunication provider or vendor a mechanism for selecting which of those services is to be provided to a given group of customers. This approach is illustrated in the article by H. K. Woodland, G. A. Reisner, and A. S. Melamed, "System Management, AT&T Technical Journal, Vol. 64, No. 1, January, 1985. This solution suffers from many problems, one of which has been the difficulty in anticipating all the different types of services that a customer might desire, and in anticipating the correct manner of providing these different services. Many special services developed at a large cost to a manufacturer have found little utilization by customers resulting in both the manufacturer and the customers being dissatisfied with the telecommunication system's performance.
Because of the procedural program structure and the development systems utilized to develop the programs for these telecommunication systems, customer programmability for the end user simply is not practical even for the largest corporate customers. One approach for end users to obtain special telecommunication services is for a corporate customer to request from the manufacturer certain features. This approach is not a desirable one from either the customer's or the manufacturer's point of view. The manufacturer is required to allocate valuable human resources to develop software that is only used by one customer. From the customer's point of view, the cost of the manufacturer providing such a service is high; and in addition, there is normally a large delay associated with such a request.
Another approach for customer programmability is described in the article entitled, "Customer Control of Network Services," IEEE Communications Magazine, Vol. 22, No. 10, October, 1984, by G. A. Raack, E. G. Sable, and R. J. Stewart. The latter article describes a system that allows a business customer to configure existing features so as to customize AT&T's Advanced 800 service. The customer utilizes a user-friendly interface provided by a Service Management System to configure existing features into a desired package of services using a tree structure to define the logical order of the service. This ability to package features in different orders and combinations, allows the customer to tailor the different features to provide a package which fits the customer's requirements. While this capability is extremely useful, the customer is not allowed to directly program the computers controlling the telephone network and is limited in the type of changes which can be made.
From the foregoing, it can be seen that there exists a need for a programming language and software development system that allows end customers and providers of telecommunication services the ability to quickly and economically modify the services provided by telecommunication systems. In addition, the ability to make these modifications should require a minimal understanding of the manner in which the existing services and features have been implemented, even if these existing services are being replaced by new services. Also, the telecommunication system should be capable of making these modifications without disrupting normal operation. In addition, the development system should be a standard, commercial product with which a number of programmers are familiar and which is not coupled to the telecommunication industry. This latter requirement would allow a customer to freely tap a wider base of programming talent than if the customer was restricted only to those programmers who are experts in telecommunication systems.